package com.ewanghuiju.app.model.http.api;

import com.ewanghuiju.app.model.bean.request.LoginRequestBean;
import com.ewanghuiju.app.model.bean.request.PhoneRegistbindRequestBean;
import com.ewanghuiju.app.model.bean.response.ArticleArticleResponBean;
import com.ewanghuiju.app.model.bean.response.BindUserinfoResponBean;
import com.ewanghuiju.app.model.bean.response.InviterInfo;
import com.ewanghuiju.app.model.bean.response.LoginResponBean;
import com.ewanghuiju.app.model.bean.response.PhoneCodeResponseBean;
import com.ewanghuiju.app.model.bean.response.PhoneRegistbindResponBean;
import com.ewanghuiju.app.model.bean.response.UserInfoResponBean;
import com.ewanghuiju.app.model.bean.response.VersionResponBean;
import com.ewanghuiju.app.model.http.request.BaseRequest;
import com.ewanghuiju.app.model.http.response.BaseResponse;
import com.ewanghuiju.app.model.http.response.MyHttpResponse;

import java.util.List;

import io.reactivex.Flowable;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

/**
 * @author sj  qq:751943509
 * @class describe
 * @time 2020/2/11
 */
public interface MyApis {
    //测试服
//    String HOST = "http://cs.wangxiaoma.cn/";
//    String HOST = "http://piliang.itiqq.com/";
    String HOST = "http://cvs.wangxiaoma.cn/";
    //正式服
//    String HOST = "http://ewzs.wangxiaoma.cn/";

    /**
     * 手机号登录
     *
     * @return
     */
    @POST("mobilelogin")
    Flowable<MyHttpResponse<LoginResponBean>> phoneLogin(@Body LoginRequestBean loginRequestBean);

    /**
     * 登录（验证是否绑定过推荐人）
     *
     * @param unionid 微信unionid
     * @param mobile  手机号
     * @return
     */
    @FormUrlEncoded
    @POST("login")
    Flowable<MyHttpResponse<LoginResponBean>> wxUserLogin(@Field("unionid") String unionid, @Field("mobile") String mobile);//登录（验证是否绑定过推荐人）

    /**
     * 注册获取会员推荐信息
     *
     * @param unionid
     * @param mobile
     * @return
     */
    @FormUrlEncoded
    @POST("getUserNum")
    Flowable<MyHttpResponse<List<BindUserinfoResponBean>>> getUserNum(@Field("unionid") String unionid, @Field("mobile") String mobile, @Field("code") String code);//注册获取会员推荐信息

    /**
     * 微信注册接口
     *
     * @param unionid
     * @param mobile
     * @param number
     * @param headimgurl
     * @param nickname
     * @return
     */
    @FormUrlEncoded
    @POST("register")
    Flowable<MyHttpResponse<LoginResponBean>> wxUserRegister(@Field("unionid") String unionid, @Field("mobile") String mobile, @Field("number") String number,
                                                             @Field("headimgurl") String headimgurl, @Field("nickname") String nickname);//注册微信

    /**
     * 绑定邀请码
     *
     * @param mobile 手机号
     * @param number 邀请码
     * @return
     */
    @FormUrlEncoded
    @POST("mobileparentid")
    Flowable<MyHttpResponse<LoginResponBean>> userMobileparentid(@Field("mobile") String mobile, @Field("number") String number);//绑定邀请码

    /**
     * 获取用户信息
     *
     * @return
     */
    @POST("info")
    Flowable<MyHttpResponse<UserInfoResponBean>> getUserInfo();

    /**
     * 手机号注册
     *
     * @param phoneRegistbindRequestBean
     * @return
     */

    @POST("mobilereg")
    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> phoneRegist(@Body PhoneRegistbindRequestBean phoneRegistbindRequestBean);

    /**
     * 修改密码
     *
     * @param phoneRegistbindRequestBean
     * @return
     */
    @POST("editpwd")
    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> userEditpwd(@Body PhoneRegistbindRequestBean phoneRegistbindRequestBean);

    /**
     * 手机号绑定
     *
     * @param phoneRegistbindRequestBean
     * @return
     */
    @POST("mobilebind")
    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> phoneBind(@Body PhoneRegistbindRequestBean phoneRegistbindRequestBean);

    /**
     * 获取用户邀请信息  根据邀请码
     *
     * @param baseRequest
     * @return
     */
    @POST("number_user")
    Flowable<MyHttpResponse<InviterInfo>> getInviterinfo(@Body BaseRequest baseRequest);

    /**
     * 发送短信 获取验证码
     *
     * @param mobile
     * @return
     */
    @POST("sendMsg")
    Flowable<MyHttpResponse<PhoneCodeResponseBean>> getCode(@Body String mobile);

    /**
     * 发送短信 获取验证码  注册时候
     *
     * @param mobile
     * @return
     */
    @FormUrlEncoded
    @POST("sendMsg")
    Flowable<MyHttpResponse<PhoneCodeResponseBean>> getCodeWithReg(@Field("mobile") String mobile, @Field("type") String type);

    /**
     * 添加邀请人信息
     *
     * @param code
     * @return
     */
    @POST("getinviteinfo")
    Flowable<MyHttpResponse> addCode(@Body String code);

    /**
     * 首页轮播图  1
     *
     * @return
     */
    @FormUrlEncoded
    @POST("get_lb_img")
    Flowable<MyHttpResponse<BaseResponse>> taokeGetlbimg(@Field("type") String type);

    /**
     *
     * 首页头条  已废弃
     * @return
     */
//    @POST("article_list")
//    Flowable<MyHttpResponse<BaseResponse>> articleArticlelist();

    /**
     * 首页头条
     *
     * @return
     */
    @POST("noticelist")
    Flowable<MyHttpResponse<List<ArticleArticleResponBean>>> articleArticlelist();

    /**
     * 获取邀请好友信息
     *
     * @return
     */
//    @POST("qrcodeInfo")
//    Flowable<MyHttpResponse<InviteFriendResponBean>> getQrcodeInfo();

    /**
     * 绑定微信
     * 1 微信
     *
     * @param unionid    unionid
     * @param headimgurl 头像
     * @param nickname   昵称
     * @return
     */
    @FormUrlEncoded
    @POST("mobilewx")
    Flowable<MyHttpResponse<BaseResponse>> mobileWx(@Field("unionid") String unionid, @Field("headimgurl") String headimgurl, @Field("nickname") String nickname);

    /**
     * 解绑微信
     *
     * @param wx 默认传1
     * @return
     */
    @FormUrlEncoded
    @POST("wx_del")
    Flowable<MyHttpResponse<BaseResponse>> wxDel(@Field("wx") String wx);

    /**
     * 升级提醒
     *
     * @return
     */
    @FormUrlEncoded
    @POST("upgrade")
    Flowable<MyHttpResponse<VersionResponBean>> getUpgradeInfo(@Field("version") String version, @Field("type") String type);
}
